#ifndef _INTERACTOR_H_
#define _INTERACTOR_H_

#include <SECore/Event.h>

namespace SEngine
{
    class Widget;
    class Interactor 
    {
    public:
        Interactor(Widget & widget) : m_widget(widget) {}
        virtual ~Interactor() = default;

        void OnEvent(EventPtr);

        

    protected:
        virtual void OnMousePressEvent(MousePressEventPtr) {}
        virtual void OnMouseReleaseEvent(MouseReleaseEventPtr) {}
        virtual void OnMouseMoveEvent(MouseMoveEventPtr) {}
        virtual void OnMouseWheelEvent(MouseWheelEventPtr) {}
        virtual void OnKeyPressEvent(KeyPressEventPtr) {}
        virtual void OnKeyReleaseEvent(KeyReleaseEventPtr) {}

    protected:
        Widget & m_widget;
    };
} // namespace SEngine



#endif
